package com.swu.pad.course.service;

import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.swu.pad.course.dto.Student;
import com.swu.pad.course.entity.Course;
import com.swu.pad.course.entity.CourseGroupUser;
import com.swu.pad.course.entity.Group;

public interface CourseService {

	/**
	 * 添加课程
	 * @param course
	 * @return
	 */
	public Course addCourse(Course course);

	/**
	 * 删除课程
	 * @param courseId
	 */
	public void deleteCourse(String courseId);

	/**
	 * 获取所有课程
	 * @return
	 */
	public List<Course> getAllCourses();

	/**
	 * 根据ID获取课程
	 * @param courseId
	 * @return
	 */
	public Course getCourseById(String courseId);

	/**
	 * 根据ID获取课程信息（编辑组、学生）
	 * @param courseId
	 * @return
	 */
	public Map<String, Object> getCourseDetail(String courseId);

	/**
	 * 给课程导入学生
	 * @param course
	 * @param file
	 */
	public void importStudent(Course course, MultipartFile file);

	/**
	 * 获取老师课程
	 * @param userId
	 * @return 
	 */
	public List<Course> getTeacherCourse(String userId);

	/**
	 * 获取学生课程
	 * @param userId
	 * @return 
	 */
	public List<Course> getStudentCourse(String userId);

	/**
	 * 获取课程的组
	 * @param courseId
	 * @return
	 */
	public List<Group> getCourseGroup(String courseId, String groupType);

	/**
	 * 获取学生作业组
	 * @param userId
	 * @param assignmentId
	 * @param grouptypeEdit
	 * @return
	 */
	public List<CourseGroupUser> getUserAssignmentGroup(String userId, String assignmentId, String grouptypeEdit);

	public List<Student> getStudents(String courseId);

	public void updateStudent(String courseId, Student student);

}
